/**
 * 
 */
package sg.edu.nus.iss.vmcs.payment;

/**
 * @author moe
 *
 */

/**
 * Generic for Payment
 */
public interface Payment {
	public enum PaymentType{ COIN_PAYTYPE, NETS_PAYTYPE, UNKNOWN };
	
	/**
	 * Start Collecting the Payment
	 * @param amountToCollect - in Cents
	 * @param timeOutSec - in Seconds
	 */
	public void startPayment(int amountToCollect, int timeOutSec);	
	/**
	 * Complete Payment
	 * @param status
	 * <p> True - Accept The Payment
	 * <p> False - Cancel the Payment
	 */
	public Boolean completePayment(Boolean status);
	
	/**
	 * 
	 */
	public void processReceive(int amount);
	
	/**
	 * Continue Receiving the Payment
	 * @param amountToCollect
	 */
	public void continueReceive(int amountToCollect);
	
	/**
	 * Activate the Payment
	 * @param active
	 */
	public void setActive(boolean active);
}
